
// 官方内置模块

const { log } = require("console");
var path = require("path");
// console.log(path);

// process.cwd()  返回命令行(终端)启动的位置
// __dirname      (全局的)返回当前文件所在的目录(文件夹)
// __filename     (全局的)返回当前文件的路径

// console.log(process.cwd());
// console.log(__dirname);
// console.log(__filename);


// path.resolve([from ...], to) 将 to 参数解析为绝对路径，给定的路径的序列是从右往左被处理的，后面每个 path 被依次解析，直到构造完成一个绝对路径。

// __dirname =>  C:\Users\怀霜凌志\Desktop\2213\day35_node\official
// ./ 同级(可以省略不写)
var result = path.resolve(__dirname, "./a", "b", "1.txt");
// console.log(result);  // C:\Users\怀霜凌志\Desktop\2213\day35_node\official\a\b\1.txt

// / 根目录 (盘符 )
var result = path.resolve(__dirname, "/a", "b", "1.txt");
// console.log(result); //  C:\a\b\1.txt

var result = path.resolve("a");
// console.log(result); // C:\Users\怀霜凌志\Desktop\2213\day35_node\a


// path.relative(from, to) 方法根据当前工作目录返回从 from 到 to 的相对路径。 如果 from 和 to 都解析为相同的路径（在分别调用 path.resolve() 之后），则返回零长度字符串。

// var result = path.relative("./one/a", "./two/b");  //目录
// console.log(result); // ..\..\two\b

// var result = path.relative("./two/four", "./two/three");
// console.log(result); // ../three


// path.join() 方法使用特定于平台的分隔符作为定界符将所有给定的 path 片段连接在一起，然后规范化生成的路径。(并不一定会生成绝对路径)
// __dirname =>  C:\Users\怀霜凌志\Desktop\2213\day35_node\official
// var result = path.join(__dirname, "./a", "b", "1.txt");
// console.log(result);

//   / 并不是根目录  => 而是路径路径之间的分隔符
// var result = path.join(__dirname, "/a", "b", "1.txt");
// console.log(result);

var pathStr = "c:/Users/怀霜凌志/Desktop/node/wwwroot/static_files/gif/image.png";

// path.dirname()   传入一个路径字符串 => 返回路径中代表文件夹的部分
// path.basename()   传入一个路径字符串 => 返回路径中代表文件名的部分
// path.extname()   传入一个路径字符串 => 返回路径中代表文件后缀的部分

// var dir = path.dirname(pathStr);
// console.log(dir);

// var base = path.basename(pathStr);
// console.log(base);

// var ext = path.extname(pathStr);
// console.log(ext);


// path.parse()    传入一个路径字符串 => 将路径解析为对象
var pathStr = "c:/Users/怀霜凌志/Desktop/node/wwwroot/static_files/gif/image.png";
var obj = path.parse(pathStr);
console.log(obj);



